<table class="configuration table table-bordered">
    <thead>
        <tr>
            <th class="text-left" style="width: 20%">Key</th>
            <th class="text-left" style="width: 15%">Default</th>
            <th class="text-left" style="width: 10%">Type</th>
            <th class="text-left" style="width: 55%">Description</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td><h5>state.backend.rocksdb.block.blocksize</h5></td>
            <td style="word-wrap: break-word;">(none)</td>
            <td>MemorySize</td>
            <td>The approximate size (in bytes) of user data packed per block. RocksDB has default blocksize as '4KB'.</td>
        </tr>
        <tr>
            <td><h5>state.backend.rocksdb.block.cache-size</h5></td>
            <td style="word-wrap: break-word;">(none)</td>
            <td>MemorySize</td>
            <td>The amount of the cache for data blocks in RocksDB. RocksDB has default block-cache size as '8MB'.</td>
        </tr>
        <tr>
            <td><h5>state.backend.rocksdb.block.metadata-blocksize</h5></td>
            <td style="word-wrap: break-word;">(none)</td>
            <td>MemorySize</td>
            <td>Approximate size of partitioned metadata packed per block. Currently applied to indexes block when partitioned index/filters option is enabled. RocksDB has default metadata blocksize as '4KB'.</td>
        </tr>
        <tr>
            <td><h5>state.backend.rocksdb.bloom-filter.bits-per-key</h5></td>
            <td style="word-wrap: break-word;">10.0</td>
            <td>Double</td>
            <td>Bits per key that bloom filter will use, this only take effect when bloom filter is used.</td>
        </tr>
        <tr>
            <td><h5>state.backend.rocksdb.bloom-filter.block-based-mode</h5></td>
            <td style="word-wrap: break-word;">false</td>
            <td>Boolean</td>
            <td>If true, RocksDB will use block-based filter instead of full filter, this only take effect when bloom filter is used.</td>
        </tr>
        <tr>
            <td><h5>state.backend.rocksdb.compaction.level.max-size-level-base</h5></td>
            <td style="word-wrap: break-word;">(none)</td>
            <td>MemorySize</td>
            <td>The upper-bound of the total size of level base files in bytes. RocksDB has default configuration as '256MB'.</td>
        </tr>
        <tr>
            <td><h5>state.backend.rocksdb.compaction.level.target-file-size-base</h5></td>
            <td style="word-wrap: break-word;">(none)</td>
            <td>MemorySize</td>
            <td>The target file size for compaction, which determines a level-1 file size. RocksDB has default configuration as '64MB'.</td>
        </tr>
        <tr>
            <td><h5>state.backend.rocksdb.compaction.level.use-dynamic-size</h5></td>
            <td style="word-wrap: break-word;">(none)</td>
            <td>Boolean</td>
            <td>If true, RocksDB will pick target size of each level dynamically. From an empty DB, RocksDB would make last level the base level, which means merging L0 data into the last level, until it exceeds max_bytes_for_level_base. And then repeat this process for second last level and so on. RocksDB has default configuration as 'false'. For more information, please refer to <a href="https://github.com/facebook/rocksdb/wiki/Leveled-Compaction#level_compaction_dynamic_level_bytes-is-true">RocksDB's doc.</a></td>
        </tr>
        <tr>
            <td><h5>state.backend.rocksdb.compaction.style</h5></td>
            <td style="word-wrap: break-word;">(none)</td>
            <td><p>Enum</p></td>
            <td>The specified compaction style for DB. Candidate compaction style is LEVEL, FIFO, UNIVERSAL or NONE, and RocksDB choose 'LEVEL' as default style.<br /><br />Possible values:<ul><li>"LEVEL"</li><li>"UNIVERSAL"</li><li>"FIFO"</li><li>"NONE"</li></ul></td>
        </tr>
        <tr>
            <td><h5>state.backend.rocksdb.files.open</h5></td>
            <td style="word-wrap: break-word;">(none)</td>
            <td>Integer</td>
            <td>The maximum number of open files (per stateful operator) that can be used by the DB, '-1' means no limit. RocksDB has default configuration as '-1'.</td>
        </tr>
        <tr>
            <td><h5>state.backend.rocksdb.log.dir</h5></td>
            <td style="word-wrap: break-word;">(none)</td>
            <td>String</td>
            <td>The directory for RocksDB's information logging files. If empty (RocksDB default setting), log files will be in the same directory as data files. If non-empty, this directory will be used and the data directory's absolute path will be used as the prefix of the log file name.</td>
        </tr>
        <tr>
            <td><h5>state.backend.rocksdb.log.file-num</h5></td>
            <td style="word-wrap: break-word;">(none)</td>
            <td>Integer</td>
            <td>The maximum number of files RocksDB should keep for information logging (RocksDB default setting: 1000).</td>
        </tr>
        <tr>
            <td><h5>state.backend.rocksdb.log.level</h5></td>
            <td style="word-wrap: break-word;">(none)</td>
            <td><p>Enum</p></td>
            <td>The specified information logging level for RocksDB. If unset, Flink will use <code class="highlighter-rouge">HEADER_LEVEL</code>.<br />Note: RocksDB info logs will not be written to the TaskManager logs and there is no rolling strategy, unless you configure <code class="highlighter-rouge">state.backend.rocksdb.log.dir</code>, <code class="highlighter-rouge">state.backend.rocksdb.log.max-file-size</code>, and <code class="highlighter-rouge">state.backend.rocksdb.log.file-num</code> accordingly. Without a rolling strategy, long-running tasks may lead to uncontrolled disk space usage if configured with increased log levels!<br />There is no need to modify the RocksDB log level, unless for troubleshooting RocksDB.<br /><br />Possible values:<ul><li>"DEBUG_LEVEL"</li><li>"INFO_LEVEL"</li><li>"WARN_LEVEL"</li><li>"ERROR_LEVEL"</li><li>"FATAL_LEVEL"</li><li>"HEADER_LEVEL"</li><li>"NUM_INFO_LOG_LEVELS"</li></ul></td>
        </tr>
        <tr>
            <td><h5>state.backend.rocksdb.log.max-file-size</h5></td>
            <td style="word-wrap: break-word;">(none)</td>
            <td>MemorySize</td>
            <td>The maximum size of RocksDB's file used for information logging. If the log files becomes larger than this, a new file will be created. If 0 (RocksDB default setting), all logs will be written to one log file.</td>
        </tr>
        <tr>
            <td><h5>state.backend.rocksdb.thread.num</h5></td>
            <td style="word-wrap: break-word;">(none)</td>
            <td>Integer</td>
            <td>The maximum number of concurrent background flush and compaction jobs (per stateful operator). RocksDB has default configuration as '1'.</td>
        </tr>
        <tr>
            <td><h5>state.backend.rocksdb.use-bloom-filter</h5></td>
            <td style="word-wrap: break-word;">false</td>
            <td>Boolean</td>
            <td>If true, every newly created SST file will contain a Bloom filter. RocksDB disables it by default.</td>
        </tr>
        <tr>
            <td><h5>state.backend.rocksdb.write-batch-size</h5></td>
            <td style="word-wrap: break-word;">2 mb</td>
            <td>MemorySize</td>
            <td>The max size of the consumed memory for RocksDB batch write, will flush just based on item count if this config set to 0.</td>
        </tr>
        <tr>
            <td><h5>state.backend.rocksdb.writebuffer.count</h5></td>
            <td style="word-wrap: break-word;">(none)</td>
            <td>Integer</td>
            <td>The maximum number of write buffers that are built up in memory. RocksDB has default configuration as '2'.</td>
        </tr>
        <tr>
            <td><h5>state.backend.rocksdb.writebuffer.number-to-merge</h5></td>
            <td style="word-wrap: break-word;">(none)</td>
            <td>Integer</td>
            <td>The minimum number of write buffers that will be merged together before writing to storage. RocksDB has default configuration as '1'.</td>
        </tr>
        <tr>
            <td><h5>state.backend.rocksdb.writebuffer.size</h5></td>
            <td style="word-wrap: break-word;">(none)</td>
            <td>MemorySize</td>
            <td>The amount of data built up in memory (backed by an unsorted log on disk) before converting to a sorted on-disk files. RocksDB has default writebuffer size as '64MB'.</td>
        </tr>
    </tbody>
</table>
